iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
Odoo

Odoo 魔法學院: 一步一腳印帶你成為客製化大師系列 第 8

[Day08] 來吧!對戰圖書館管理系統

  • 分享至 

  • xImage
  •  

建立完環境後,就是要開發阿,不然要要幹嘛!?來在 Odoo 上實作圖書館管理系統吧!
還沒建置成功 Odoo 開發環境的可以參考前面的 Day06, Day07 文章

圖書館管理系統?

我們將在 Odoo 上實作一個小而美,具體而微的圖書館管理系統,先來說說裡面比較重要的幾個元素:

  1. 書 (書本資訊、借閱狀態 ...)
  2. 人 (大眾、會員、管理員)

書的基本資訊,比較要注意的是 International Standard Book Number (ISBN),是確定書籍唯一的國際編號。
人的權限由高而低,管理員能修改書籍的狀態,而會員能租借書籍,大眾則能看到書籍的狀況。

建立 Addon Module

確保 Odoo Server 有偵測到自定義的 Addons 資料夾
建立 Moudle 資料夾及 manifest (描述檔案)
完成 Module 資訊

確保 Odoo Server 有偵測到自定義的 Addons 資料夾

建立模組資料庫和設定檔

在上兩個單元我們知道了,Odoo 有預設的 Addons 搜尋路徑 (用終端機啟動 Odoo 時能看到),也學過要如何新增,最簡化步驟建造資料庫和設定檔。

$ mkdir ~/work15/library
$ source ~/work15/env15/bin/activate
(env15) $ odoo scaffold library_app ~/work15/library

你會看到

# tree ~/work15/library/
/root/work15/library/
`-- library_app
    |-- __init__.py
    |-- __manifest__.py
    |-- controllers
    |   |-- __init__.py
    |   `-- controllers.py
    |-- demo
    |   `-- demo.xml
    |-- models
    |   |-- __init__.py
    |   `-- models.py
    |-- security
    |   `-- ir.model.access.csv
    `-- views
        |-- templates.xml
        `-- views.xml

這不就是個標準的 Model-View-Controller (MVC) 架構嗎!?
再來我們要在 manifest.py 新增模組的描述,以下是初始時的樣子:

# -*- coding: utf-8 -*-
{
    'name': "library_app",

    'summary': """
        Short (1 phrase/line) summary of the module's purpose, used as
        subtitle on modules listing or apps.openerp.com""",

    'description': """
        Long description of module's purpose
    """,

    'author': "My Company",
    'website': "http://www.yourcompany.com",

    # Categories can be used to filter modules in modules listing
    # Check https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/ir_module_category_data.xml
    # for the full list
    'category': 'Uncategorized',
    'version': '0.1',

    # any module necessary for this one to work correctly
    'depends': ['base'],

    # always loaded
    'data': [
        # 'security/ir.model.access.csv',
        'views/views.xml',
        'views/templates.xml',
    ],
    # only loaded in demonstration mode
    'demo': [
        'demo/demo.xml',
    ],
}

值得注意的 manifest

  • category
  • license
  • description
  • icon
  • ...

接下來我們將深入探討這些欄位。


上一篇
[Day07] PostgreSQL+Odoo 伺服器設定檔
下一篇
[Day09] 本機端上架圖書館管理系統(  ̄ー ̄)ノ■☆■ヾ( ̄ー ̄ ) (附 GitHub)
系列文
Odoo 魔法學院: 一步一腳印帶你成為客製化大師30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言